package com.sise.cn.api.common.service;

import com.sise.cn.api.common.po.Order;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 龚秀峰
 * @version 1.0
 * @date 2020/6/10 11:06
 */
public interface OrderService {

    /**
     * 通过订单ID查询订单
     * @param id 订单的主键
     * @return 订单
     */
    Order getOrderById(Long id);

    /**
     * 添加一个订单
     *
     * @param order 订单信息
     * @return 新增订单的ID号
     */
    @Transactional(rollbackFor = Exception.class)
    Long saveOrder(Order order);

    /**
     * 根据订单号查询订单列表
     *
     * @param orderCode 订单查询条件
     * @return 订单列表
     */
    List<Order> getOrderByOrderCode(String orderCode);

    /**
     * 更新订单信息
     *
     * @param order 订单更新信息以及条件
     */
    @Transactional(rollbackFor = Exception.class)
    void updateOrderByOrderCode(Order order);

    /**
     * 根据订单ID删除订单
     * @param id 订单ID
     */
    @Transactional(rollbackFor =  Exception.class)
    void deleteOrderById(Long id);

}
